package dk.simonvogensen.itodo.client.backend;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import dk.simonvogensen.itodo.shared.model.Config;
import dk.simonvogensen.itodo.shared.model.TodoItem;
import dk.simonvogensen.itodo.client.*;
import dk.simonvogensen.itodo.client.view.ITodoView;

import java.util.List;

/**
 * @author $LastChangedBy:$ $LastChangedDate:$
 * @version $Revision:$
 */
public class AppEngineBackend extends Backend {
    private final TodoApiAsync api = GWT.create(TodoApi.class);

    public AppEngineBackend(ITodoView view, ITodoGWTUtils gwtUtils) {
    }

    public void getTodoItemList(int startIndex, int endIndex, AsyncCallback<List<TodoItem>> callback) {
        api.getTodoItemList(startIndex, endIndex, callback);
    }

    public void createTodo(AsyncCallback<String> callback) {
        api.createTodo(callback);
    }

    public void updateTodo(TodoItem item, AsyncCallback<Void> callback) {
        api.updateTodo(item, callback);
    }

    public void deleteTodo(TodoItem item, AsyncCallback<Void> callback) {
        api.deleteTodo(item, callback);
    }

    public void updateConfig(Config config, AsyncCallback<String> callback) {
        api.updateConfig(config, callback);
    }

    public void getLatestTodoItem(AsyncCallback<TodoItem> callback) {
        api.getLatestTodoItem(callback);
    }

    public void importData(String importString, AsyncCallback<Void> callback) {
        api.importData(importString, callback);
    }

    public void init() {
    }
}
